package io.gitee.macxiang.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/** 该注解用于指定实体类对应的数据库表名。 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE, ElementType.ANNOTATION_TYPE })
public @interface TableName {
  /** 指定实体类对应的数据库表名。如果实体类名与表名不一致，使用这个属性来指定正确的表名。 */
  String value() default "";

  /** 添加反引号 `; 如果数据库表名与系统关键字重合等,需要添加反引号加以区分 */
  boolean backtick() default true;

  /** 指定数据库表的主键列名 */
  String primaryKey() default "id";

  /** 自动生成的service相对于entity路径;默认:%s.service;%s=实体类的父级 */
  String servicePackage() default "%s.service";

  /** 生成的service后缀 */
  String serviceSuffix() default "Service";

}
